/**
 * 判断一个变量是否是数组
 * 三种方法，各有利弊
 * 1、Object.prototype.toString.call(arr) === '[object Array]'
 * 2、arr instanceof Array
 * 3、Array.isArray(arr)
 */

// 第一种方法：toString.call
function toStringArray(arr) {
  return Object.prototype.toString.call(arr) === "[object Array]";
}

// 弊端：toStringTag方法可以更改名字
const obj1 = {
  [Symbol.toStringTag]: "Array"
};

// console.log(toStringArray(obj1));

// 第二种方法：instanceof
function instanceArray(arr) {
  return arr instanceof Array;
}
// 弊端：instanceof会更改原型
const obj2 = Object.create(Array.prototype);
// obj2.__proto__ = Array.prototype;
console.log(instanceArray(obj2));

// 第三种方法：Array.isArray
console.log(Array.isArray(obj2));
